// pages/register/register.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    province: '',
    provinceObj: [],
    provinces: [],
    username: '',
    password1: '',
    password2: '',
    phone: '',
    // 验证手机号
    code:'',
    randomNum:'',
  },

  // 省市区
  bindProvince: function (e) {
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      province: this.data.provinces[e.detail.value]
    })
  },
  //获取用户名
  username(event) {
    console.log('获取输入的用户名', event.detail.value)
    this.setData({
      username: event.detail.value
    })
  },
  //获取密码
  password1(event) {
    console.log('获取输入的账号', event.detail.value)
    this.setData({
      password1: event.detail.value
    })
  },
  // 获取请再次输入密码
  password2(event) {
    console.log('获取输入的密码', event.detail.value)
    this.setData({
      password2: event.detail.value
    })
  },
  // 获取手机号
  phone(event) {
    // console.log('获取手机号', event.detail.value)
    this.setData({
      phone: event.detail.value
    })
  },

   //验证码输入
   bindCodeInput(event) {
    this.setData({
      code: event.detail.value
    })
  },

  //获取短信验证码
  getCode(e) {
    let phone = this.data.phone;
    if(!phone){
      wx.showToast({
        icon: 'none',
        title: "请先输入手机号",
      })
      return false;
    }
    if (!(/^1[3|4|5|6|7|8|9]\d{9}$/.test(phone))) {
      wx.showToast({
        icon: 'none',
        title: '请输入正确手机号',
      })
      return false;
    }
    var num = '';
    var str = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    // var str = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
    for (var i = 0; i < 4; i++) {
      num += str[Math.round(Math.random() * 4)]
    }
    console.log(num)
    this.setData({
      randomNum:num
    })
  
    wx.request({
      url: app.BASE_SERVER_URL + '/api/wx/textMessage',
      method: 'POST',
      data: {
        phone: this.data.phone,
        randomNum:num,
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded', // 默认值
      },
      success: (res) => { //需要注意的是，这里也可以是箭头函数，也有必须使用箭头函数的情况
        console.log(res.data)
        if (res.data.code == "0") { //如果返回的code为0，代表用户名密码验证成功
         
        } else {
          wx.showToast({
            icon: 'none',
            title: res.data.msg,
          })
        }
      },
      fail: (err) => {
        console.log(err)
      }
    })
  },

  //注册
  goRegister: function () {
    let username = this.data.username
    let password1 = this.data.password1
    let password2 = this.data.password2
    let phone = this.data.phone
    //校验用户名
    if (username.length < 3) {
      wx.showToast({
        icon: 'none',
        title: '用户名至少3位',
      })
      return
    }
    if (username.length > 10) {
      wx.showToast({
        icon: 'none',
        title: '用户名最多10位',
      })
      return
    }
    // 手机号验证
    // if(phone){
    if (!(/^1[3|4|5|6|7|8|9]\d{9}$/.test(phone))) {
      wx.showToast({
        icon: 'none',
        title: '请输入正确手机号',
      })
      return
    }
    if (phone.length < 11 || phone.length > 12) {
      wx.showToast({
        icon: 'none',
        title: '请输入正确手机号',
      })
      return
    }
    // }
    //校验密码
    if (password1.length < 6) {
      wx.showToast({
        icon: 'none',
        title: '密码至少6位',
      })
      return
    }
    //校验再次输入密码
    if (password2 != password1) {
      wx.showToast({
        icon: 'none',
        title: '两次密码输入不一致',
      })
      return
    }



    // 城市验证
    var code;
    var provinceObj = this.data.provinceObj
    for (var i = 0; i < provinceObj.length; i++) {
      if (this.data.province === provinceObj[i].name) {
        code = provinceObj[i].code
      }
    }
    wx.request({
      url: app.BASE_SERVER_URL + '/api/wx/register',
      method: 'POST',
      data: {
        areaId: code,
        loginName: this.data.username,
        password: this.data.password1,
        mobile: this.data.phone,
        randomCode:this.data.code,
        randomNum:this.data.randomNum,
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded', // 默认值
      },
      success: (res) => { //需要注意的是，这里也可以是箭头函数，也有必须使用箭头函数的情况
        console.log(res.data)
        if (res.data.code == "0") { //如果返回的code为0，代表用户名密码验证成功
          wx.navigateBack({
            changed: true
          })
          wx.showToast({
            title: '注册成功',
            icon: 'success',
            duration: 2000
          })
        } else {
          wx.showToast({
            icon: 'none',
            title: res.data.msg,
          })
        }
      },
      fail: (err) => {
        console.log('注册失败', err)
      }
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.request({
      url: app.BASE_SERVER_URL + '/api/wx/getProvince', //接口地址
      method: 'POST',
      data: {},
      header: {
        'content-type': 'application/x-www-form-urlencoded', // 默认值
      },
      success: (res) => {
        var provinceObj = res.data.data.data;
        var provinces = [];
        for (var i = 0; i < provinceObj.length; i++) {
          provinces.push(provinceObj[i].name);
        }
        this.setData({
          provinceObj: provinceObj,
          provinces: provinces
        })
        console.log(res.data)
      },
      fail: (err) => {
        console.log(err)
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
})